The advent of cloud-based computing architectures has opened new possibilities for the rapid and scalable deployment of virtual Web stores, media outlets, social networking sites, and many other on-line sites or services. In general, a cloud-based architecture deploys a set of hosted resources such as processors, operating systems, software and other components that can be combined together to form virtual machines. A user or customer can request the instantiation of a virtual machine or set of machines from those resources from a central server or cloud management system to perform intended tasks, services, or applications. For example, a user may wish to set up and instantiate a virtual server from the cloud to create a storefront to market products or services on a temporary basis, for instance, to sell tickets to or merchandise for an upcoming sports or musical performance. The user can subscribe to the set of resources needed to build and run the set of instantiated virtual machines on a comparatively short-term basis, such as hours or days, for their intended application.
Typically, when a user utilizes a cloud, the user must track the software applications executed in the cloud and/or processes instantiated in the cloud. For example, the user must track the cloud processes to ensure that the correct cloud processes have been instantiated, that the cloud processes are functioning properly and/or efficiently, that the cloud is providing sufficient resources to the cloud processes, and so forth. Due in part to the user's requirements and overall usage of the cloud, the user may have many applications and/or processes instantiated in a cloud at any given instant, and the user's deployment of virtual machines, software, and other resources can change dynamically over time. In cases, the user may also utilize multiple independent host clouds to support the user's cloud deployment. That user may further instantiate and use multiple applications or other software or services inside or across multiple of those cloud boundaries, and those resources may be used or consumed by multiple or differing end-user groups in those different cloud networks.
In terms of the installation of a guest operating system in a host cloud or clouds, based upon which operating system layer guest operating systems for virtual machines can be instantiated, in known cloud management platforms and operating systems, the operating system itself is not configured to detect the host cloud in which it is installed, nor to maintain a record of how long the operating system has been operating. Due to the lack of operating system self-awareness, administrators wishing to configure the operating system for particular cloud resources or conditions, or to track the operation of the guest operating system over time for billing or other purposes, may need to resort to installing third-party services or tools on top of the guest operating system, or on the host operating system or hypervisor, in order to acquire similar information. Third-party tools or services may, however, present security risks to sensitive operating system or usage information, and because they may operate above the kernel, may be able to be switched off by users or others without the knowledge of the administrator.
It may be desirable to provide systems and methods for tracking cloud installation information using a cloud-aware operating system kernel, in which a guest operating system for a cloud-based implementation can be configured with a kernel that has a native cloud-awareness capability to identify the host cloud in which it is installed or operates, as well as to track the duration of operation of the operating system or any child process, and/or to capture other data directly in the kernel itself. This information can in turn be made available either directly to a “user” of the operating system, which could include third party services or agents, but which could also be broadcast for remote consumption by other cloud management systems.